package com.rxh.pojo.core;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

public class CoreOrder implements Serializable {
    public final static short SHIP_STATUS_NOT_SHIPPED = 0;
    public final static short SHIP_STATUS_SHIPPED = 1;

    public final static short EXCEPTION_STATUS_NORMAL = 0;
    public final static short EXCEPTION_STATUS_FREEZE = 1;
    public final static short EXCEPTION_STATUS_FULL_REFUND = 2;
    public final static short EXCEPTION_STATUS_PARTIAL_REFUND = 3;
    public final static short EXCEPTION_STATUS_FULL_REFUSED = 4;
    public final static short EXCEPTION_STATUS_PARTIAL_REFUSED = 5;
    public final static short EXCEPTION_STATUS_PROXY_REFUSED = 6;

    //
    private Long id;

    // 商户表主键
    private Integer merId;

    // 网址ID
    private Integer siteId;

    // 商户订单号
    private String merOrderId;

    // 交易时间
    private Date tradeTime;

    // 常量组PayMode提供（支付方式）
    private String payMode;

    // 常量组PayMode子组提供（支付类型）
    private String payType;

    // 原始币种
    private String currency;

    // 订单原始金额
    private BigDecimal amount;

    // 原始人民币金额
    private BigDecimal rmbAmount;

    // 交易汇率:交易时间时的汇率值
    private BigDecimal rate;

    // 平台扣款*划款汇率 - 银行扣款
    private BigDecimal profit;

    // 通道金额*银行扣率
    private BigDecimal merchantRate;

    // 收单账户表主键
    private Integer accountId;

    // 0:成功 1:失败 2:未支付 3:支付中 98:超时
    private Short bankStatus;

    // 银行参考号或其他银行订单唯一标识
    private String bankOrderId;

    // json数组描述:重要银行返回信息
    private String bankParam;

    // 银行时间
    private Date bankTime;

    // 银行返回结果描述
    private String bankInfo;

    // 0:未勾兑 1:已勾兑 2:已发货 3:已结算 4:已划款 5:需补划 6:已完成
    private Short financeStatus;

    // 清算日期
    private Date financeTime;

    // 0:正常 1:冻结 2:退款 3:部分退款 4:拒付 5:部分拒付 6:代理拒付 7:退款处理中
    private Short exceptionStatus;

    // 异常日期
    private Date exceptionTime;

    // 异常金额（原始币种）
    private BigDecimal exceptionAmount;

    // 快递状态（默认未发货）
    private Short shipStatus;

    //
    private Short bondStatus;

    //
    private Date bondTime;


    /**
     * @return id
     */
    public Long getId() {
        return id;
    }

    /**
     * @param id
     */
    public void setId(Long id) {
        this.id = id;
    }

    /**
     * 商户表主键
     *
     * @return mer_id 商户表主键
     */
    public Integer getMerId() {
        return merId;
    }

    /**
     * 商户表主键
     *
     * @param merId 商户表主键
     */
    public void setMerId(Integer merId) {
        this.merId = merId;
    }

    /**
     * 网址ID
     *
     * @return site_id 网址ID
     */
    public Integer getSiteId() {
        return siteId;
    }

    /**
     * 网址ID
     *
     * @param siteId 网址ID
     */
    public void setSiteId(Integer siteId) {
        this.siteId = siteId;
    }

    /**
     * 商户订单号
     *
     * @return mer_order_id 商户订单号
     */
    public String getMerOrderId() {
        return merOrderId;
    }

    /**
     * 商户订单号
     *
     * @param merOrderId 商户订单号
     */
    public void setMerOrderId(String merOrderId) {
        this.merOrderId = merOrderId == null ? null : merOrderId.trim();
    }

    /**
     * 交易时间
     *
     * @return trade_time 交易时间
     */
    public Date getTradeTime() {
        return tradeTime;
    }

    /**
     * 交易时间
     *
     * @param tradeTime 交易时间
     */
    public void setTradeTime(Date tradeTime) {
        this.tradeTime = tradeTime;
    }

    /**
     * 常量组PayMode提供（支付方式）
     *
     * @return pay_mode 常量组PayMode提供（支付方式）
     */
    public String getPayMode() {
        return payMode;
    }

    /**
     * 常量组PayMode提供（支付方式）
     *
     * @param payMode 常量组PayMode提供（支付方式）
     */
    public void setPayMode(String payMode) {
        this.payMode = payMode == null ? null : payMode.trim();
    }

    /**
     * 常量组PayMode子组提供（支付类型）
     *
     * @return pay_type 常量组PayMode子组提供（支付类型）
     */
    public String getPayType() {
        return payType;
    }

    /**
     * 常量组PayMode子组提供（支付类型）
     *
     * @param payType 常量组PayMode子组提供（支付类型）
     */
    public void setPayType(String payType) {
        this.payType = payType == null ? null : payType.trim();
    }

    /**
     * 原始币种
     *
     * @return currency 原始币种
     */
    public String getCurrency() {
        return currency;
    }

    /**
     * 原始币种
     *
     * @param currency 原始币种
     */
    public void setCurrency(String currency) {
        this.currency = currency == null ? null : currency.trim();
    }

    /**
     * 订单原始金额
     *
     * @return amount 订单原始金额
     */
    public BigDecimal getAmount() {
        return amount;
    }

    /**
     * 订单原始金额
     *
     * @param amount 订单原始金额
     */
    public void setAmount(BigDecimal amount) {
        this.amount = amount;
    }

    /**
     * 原始人民币金额
     *
     * @return rmb_amount 原始人民币金额
     */
    public BigDecimal getRmbAmount() {
        return rmbAmount;
    }

    /**
     * 原始人民币金额
     *
     * @param rmbAmount 原始人民币金额
     */
    public void setRmbAmount(BigDecimal rmbAmount) {
        this.rmbAmount = rmbAmount;
    }

    /**
     * 交易汇率:交易时间时的汇率值
     *
     * @return rate 交易汇率:交易时间时的汇率值
     */
    public BigDecimal getRate() {
        return rate;
    }

    /**
     * 交易汇率:交易时间时的汇率值
     *
     * @param rate 交易汇率:交易时间时的汇率值
     */
    public void setRate(BigDecimal rate) {
        this.rate = rate;
    }

    /**
     * 平台扣款*划款汇率 - 银行扣款
     *
     * @return profit 平台扣款*划款汇率 - 银行扣款
     */
    public BigDecimal getProfit() {
        return profit;
    }

    /**
     * 平台扣款*划款汇率 - 银行扣款
     *
     * @param profit 平台扣款*划款汇率 - 银行扣款
     */
    public void setProfit(BigDecimal profit) {
        this.profit = profit;
    }

    /**
     * 商户扣率
     *
     * @return merchantRate 商户扣率
     */
    public BigDecimal getMerchantRate() {
        return merchantRate;
    }

    /**
     * 商户扣率
     *
     * @param merchantRate 商户扣率
     */
    public void setMerchantRate(BigDecimal merchantRate) {
        this.merchantRate = merchantRate;
    }

    /**
     * 收单账户表主键
     *
     * @return account_id 收单账户表主键
     */
    public Integer getAccountId() {
        return accountId;
    }

    /**
     * 收单账户表主键
     *
     * @param accountId 收单账户表主键
     */
    public void setAccountId(Integer accountId) {
        this.accountId = accountId;
    }

    /**
     * 0:成功 1:失败 2:未支付 3:支付中 98:超时
     *
     * @return bank_status 0:成功 1:失败 2:未支付 3:支付中 98:超时
     */
    public Short getBankStatus() {
        return bankStatus;
    }

    /**
     * 0:成功 1:失败 2:未支付 3:支付中 98:超时
     *
     * @param bankStatus 0:成功 1:失败 2:未支付 3:支付中 98:超时
     */
    public void setBankStatus(Short bankStatus) {
        this.bankStatus = bankStatus;
    }

    /**
     * 银行参考号或其他银行订单唯一标识
     *
     * @return bank_order_id 银行参考号或其他银行订单唯一标识
     */
    public String getBankOrderId() {
        return bankOrderId;
    }

    /**
     * 银行参考号或其他银行订单唯一标识
     *
     * @param bankOrderId 银行参考号或其他银行订单唯一标识
     */
    public void setBankOrderId(String bankOrderId) {
        this.bankOrderId = bankOrderId == null ? null : bankOrderId.trim();
    }

    /**
     * json数组描述:重要银行返回信息
     *
     * @return bank_param json数组描述:重要银行返回信息
     */
    public String getBankParam() {
        return bankParam;
    }

    /**
     * json数组描述:重要银行返回信息
     *
     * @param bankParam json数组描述:重要银行返回信息
     */
    public void setBankParam(String bankParam) {
        this.bankParam = bankParam == null ? null : bankParam.trim();
    }

    /**
     * 银行时间
     *
     * @return bank_time 银行时间
     */
    public Date getBankTime() {
        return bankTime;
    }

    /**
     * 银行时间
     *
     * @param bankTime 银行时间
     */
    public void setBankTime(Date bankTime) {
        this.bankTime = bankTime;
    }

    /**
     * 银行返回结果描述
     *
     * @return bank_info 银行返回结果描述
     */
    public String getBankInfo() {
        return bankInfo;
    }

    /**
     * 银行返回结果描述
     *
     * @param bankInfo 银行返回结果描述
     */
    public void setBankInfo(String bankInfo) {
        this.bankInfo = bankInfo == null ? null : bankInfo.trim();
    }

    /**
     * 0:未勾兑 1:已勾兑 2:已发货 3:已结算 4:已划款 5:需补划 6:已完成
     *
     * @return finance_status 0:未勾兑 1:已勾兑 2:已发货 3:已结算 4:已划款 5:需补划 6:已完成
     */
    public Short getFinanceStatus() {
        return financeStatus == null ? 0 : financeStatus;
    }

    /**
     * 0:未勾兑 1:已勾兑 2:已发货 3:已结算 4:已划款 5:需补划 6:已完成
     *
     * @param financeStatus 0:未勾兑 1:已勾兑 2:已发货 3:已结算 4:已划款 5:需补划 6:已完成
     */
    public void setFinanceStatus(Short financeStatus) {
        this.financeStatus = financeStatus;
    }

    /**
     * 清算日期
     *
     * @return finance_time 清算日期
     */
    public Date getFinanceTime() {
        return financeTime;
    }

    /**
     * 清算日期
     *
     * @param financeTime 清算日期
     */
    public void setFinanceTime(Date financeTime) {
        this.financeTime = financeTime;
    }

    /**
     * 0:正常 1:冻结 2:退款 3:部分退款 4:拒付 5:部分拒付 6:代理拒付
     *
     * @return exception_status 0:正常 1:冻结 2:退款 3:部分退款 4:拒付 5:部分拒付 6:代理拒付
     */
    public Short getExceptionStatus() {
        return exceptionStatus;
    }

    /**
     * 0:正常 1:冻结 2:退款 3:部分退款 4:拒付 5:部分拒付 6:代理拒付
     *
     * @param exceptionStatus 0:正常 1:冻结 2:退款 3:部分退款 4:拒付 5:部分拒付 6:代理拒付
     */
    public void setExceptionStatus(Short exceptionStatus) {
        this.exceptionStatus = exceptionStatus;
    }

    /**
     * 异常日期
     *
     * @return exception_time 异常日期
     */
    public Date getExceptionTime() {
        return exceptionTime;
    }

    /**
     * 异常日期
     *
     * @param exceptionTime 异常日期
     */
    public void setExceptionTime(Date exceptionTime) {
        this.exceptionTime = exceptionTime;
    }

    /**
     * 异常金额（原始币种）
     *
     * @return exception_amount 异常金额（原始币种）
     */
    public BigDecimal getExceptionAmount() {
        return exceptionAmount;
    }

    /**
     * 异常金额（原始币种）
     *
     * @param exceptionAmount 异常金额（原始币种）
     */
    public void setExceptionAmount(BigDecimal exceptionAmount) {
        this.exceptionAmount = exceptionAmount;
    }

    /**
     * 快递状态（默认未发货）
     *
     * @return ship_status 快递状态（默认未发货）
     */
    public Short getShipStatus() {
        return shipStatus;
    }

    /**
     * 快递状态（默认未发货）
     *
     * @param shipStatus 快递状态（默认未发货）
     */
    public void setShipStatus(Short shipStatus) {
        this.shipStatus = shipStatus;
    }

    /**
     * @return bond_status
     */
    public Short getBondStatus() {
        return bondStatus;
    }

    /**
     * @param bondStatus
     */
    public void setBondStatus(Short bondStatus) {
        this.bondStatus = bondStatus;
    }

    /**
     * @return bond_time
     */
    public Date getBondTime() {
        return bondTime;
    }

    /**
     * @param bondTime
     */
    public void setBondTime(Date bondTime) {
        this.bondTime = bondTime;
    }
}